﻿// ==================================================================================================
// Copyright(C) 2012 NCS Pte. Ltd. All rights reserved.
//
// SYSTEM NAME	    : iConnect .Net Application Framework
// COMPONENT ID	    : NCS.IConnect.Core
// COMPONENT DESC   : The foundation component of the whole framework. 	
//
// CREATED DATE/BY  : 13 Apr 2012 / Wu Yong Qing
//
// REVISION HISTORY :	
// DATE/BY			SR#/CS/PM#/OTHERS		DESCRIPTION OF CHANGE
// ==================================================================================================

using System;

namespace NCS.IConnect.Core.IoC.TransientCall
{
    /// <summary>
    /// Instance provider interface.
    /// </summary>
    public interface IInstanceProvider
    {
        /// <summary>
        /// Gets the type of the target.
        /// </summary>
        /// <value>
        /// The type of the target.
        /// </value>
        Type TargetType { get; }

        /// <summary>
        /// Gets the instance.
        /// </summary>
        /// <returns></returns>
        object GetInstance();

        /// <summary>
        /// Gets the current instance.
        /// </summary>
        object Current { get; }
    }
}
